#ifndef __DRV_INA3221_H__
#define __DRV_INA3221_H__

#include "app_config.h"
#include "Type_def.h"

#if TCFG_DRV_INA3221_SUPPORT

#define INA3221_CFG_REG         0x00    //配置寄存器
#define INA3221_CH1SHUNT_REG    0x01    //通道 1 分流电压
#define INA3221_CH1BUS_REG      0x02    //通道 1 总线电压
#define INA3221_CH2SHUNT_REG    0x03    //通道 2 分流电压
#define INA3221_CH2BUS_REG      0x04    //通道 2 总线电压
#define INA3221_CH3SHUNT_REG    0x05    //通道 3 分流电压
#define INA3221_CH3BUS_REG      0x06    //通道 3 总线电压
#define INA3221_CH1CAL_REG      0x07    //通道 1 严重警报限制
#define INA3221_CH1WAL_REG      0x08    //通道 1 警告警报限制
#define INA3221_CH2CAL_REG      0x09    //通道 2 严重警报限制
#define INA3221_CH2WAL_REG      0x0A    //通道 2 警告警报限制
#define INA3221_CH3CAL_REG      0x0B    //通道 3 严重警报限制
#define INA3221_CH3WAL_REG      0x0C    //通道 3 警告警报限制
#define INA3221_SVS_REG         0x0D    //分流电压和
#define INA3221_SVSLIMIT_REG    0x0E    //分流电压和限制
#define INA3221_ME_REG          0x0F    //屏蔽/启用 警报
#define INA3221_PVUPPER_REG     0x10    //功率有效上限
#define INA3221_PVLOW_REG       0x11    //功率有效下限
#define INA3221_MANUID_REG      0xFE    //制造商标识号
#define INA3221_DIEID_REG       0xFF    //模具标识号
 
#define INA3221_MANU_ID     0x5449  //唯一制造商标识号
#define INA3221_DIE_ID      0x3220  //唯一模具标识号
 

#define INA3221_ADDR1 0x80  // A0=GND
#define INA3221_ADDR2 0x82  // A0=VS
#define INA3221_ADDR3 0x84  // A0=SDA
#define INA3221_ADDR4 0x86  // A0=SCL
#define INA3221_I2C_ADDRESS INA3221_ADDR1


int32_t drv_ina3221_bus_voltage(uint8_t addr, uint8_t channel);

float drv_ina3221_shunt_voltage(uint8_t addr, uint8_t channel);

void ina3221_process(void);

void drv_ina3221_init(void);

#endif

#endif
